home *** CD-ROM | disk | FTP | other *** search
- package Local.Game.Level
- {
- import Local.*;
- import Local.Audio.*;
- import Local.Game.HUD.*;
- import Local.Game.Thing.*;
- import Local.Game.World.*;
- import Local.Game.World.Map.*;
- import Local.Game.World.Map.Cell.*;
- import STC9.System.Profiler.*;
- import flash.events.*;
- import flash.geom.*;
-
- public class CLevelSpawn extends EventDispatcher
- {
-
-
- public var mID:String;
-
- public var mStageAmount:int;
-
- private var mSpawnTick:int;
-
- public var mSpawnRate:int;
-
- public var mTotalSpawns:int;
-
- public var mLevel:CLevel;
-
- public var mInitClass:Class;
-
- private var mSpawnPosition:CPosition;
-
- public var mDisposed:Boolean;
-
- private var mTotalCount:int;
-
- private var mStageCount:int;
-
- public function CLevelSpawn(param1:String, param2:Class, param3:int, param4:int, param5:int, param6:CPosition)
- {
- super();
- mID = param1;
- mInitClass = param2;
- mTotalSpawns = param3;
- mStageAmount = param4;
- mSpawnRate = param5;
- mSpawnPosition = param6;
- mSpawnTick = 0;
- mStageCount = 0;
- mTotalCount = 0;
- }
-
- private function e_ENEMY_REACHEDOBJECTIVE(param1:Event = null) : void
- {
- var _loc2_:* = undefined;
- _loc2_ = param1.currentTarget;
- if(true)
- {
- mLevel.mWorld.mGame.mHUD.mHealth -= _loc2_.mMaxLife / 10;
- _loc2_.removeEventListener(CThingMain.REACHEDOBJECTIVE,e_ENEMY_REACHEDOBJECTIVE);
- }
- }
-
- private function e_DISPOSED(param1:Event = null) : void
- {
- var _loc2_:* = undefined;
- _loc2_ = param1.currentTarget;
- _loc2_.removeEventListener(CThingBase.DISPOSED,e_DISPOSED);
- var _loc3_:*;
- var _loc4_:* = (_loc3_ = §§findproperty(mStageCount)).mStageCount - 1;
- _loc3_.mStageCount = _loc4_;
- mSpawnTick = 0;
- §§push(_loc4_ = (_loc3_ = §§findproperty(mTotalCount)).mTotalCount + 1);
- if(true)
- {
- _loc3_.mTotalCount = _loc4_;
- }
- if(§§pop() == mTotalSpawns)
- {
- Dispose();
- }
- }
-
- public function Process() : int
- {
- if(true)
- {
- §§push(mStageCount);
- if(true)
- {
- §§push(mStageAmount);
- if(true)
- {
- if(§§pop() >= §§pop())
- {
- if(true)
- {
- §§push(0);
- if(true)
- {
- return §§pop();
- }
- addr45:
- if(§§pop() >= mSpawnRate)
- {
- }
- return mTotalSpawns - mTotalCount;
- addr60:
- }
- AddThing(new mInitClass(mSpawnPosition.Clone()));
- §§goto(addr60);
- }
- else
- {
- var _loc2_:*;
- var _loc1_:*;
- §§push(_loc2_ = (_loc1_ = §§findproperty(mSpawnTick)).mSpawnTick + 1);
- if(true)
- {
- _loc1_.mSpawnTick = _loc2_;
- }
- }
- }
- }
- }
- §§goto(addr45);
- }
-
- public function AddThing(param1:*) : void
- {
- if(true)
- {
- var _loc2_:*;
- var _loc3_:* = (_loc2_ = §§findproperty(mStageCount)).mStageCount + 1;
- if(true)
- {
- _loc2_.mStageCount = _loc3_;
- }
- if(true)
- {
- mSpawnTick = 0;
- if(true)
- {
- param1.mSelectable = true;
- if(true)
- {
- mLevel.mEnemyContainer.AddThing(param1);
- }
- param1.addEventListener(CThingMain.REACHEDOBJECTIVE,e_ENEMY_REACHEDOBJECTIVE);
- }
- param1.addEventListener(CThingBase.DEATH,e_DEATH);
- }
- param1.addEventListener(CThingBase.DISPOSED,e_DISPOSED);
- }
- }
-
- private function e_DEATH(param1:Event = null) : void
- {
- var _loc2_:* = undefined;
- _loc2_ = param1.currentTarget;
- _loc2_.removeEventListener(CThingBase.DEATH,e_DEATH);
- if(_loc2_.mKilledBy)
- {
- mLevel.mWorld.mGame.mHUD.mFunds += _loc2_.mPrize;
- CGlobal.IncrementStat("Enemy Kills");
- }
- }
-
- public function Dispose() : void
- {
- mDisposed = true;
- }
- }
- }
-